/**
//定义接口 
type interface_name interface {
   method_name1 [return_type]
   method_name2 [return_type]
   method_name3 [return_type]
   ...
   method_namen [return_type]
}

// 定义结构体 
type struct_name struct {
   //variables 
}

// 实现接口方法 
func (struct_name_variable struct_name) method_name1() [return_type] {
   //方法实现
}
*/

package main
import("fmt")


type Phone interface{
  call()
}

type NokiaPhone struct{
}

func (nokiaPhone NokiaPhone) call(){
  fmt.Println("I am Nokia,i can call you !")
}

type IPhone struct {
}

func (iPhone IPhone) call() {
    fmt.Println("I am iPhone, I can call you!")
}

func main() {
    var phone Phone

    phone = new(NokiaPhone)
    phone.call()

    phone = new(IPhone)
    phone.call()

}
